Edit command delegation program for editing electronic files

ABSTRACT

An edit command delegation (ECD) utility that provides a user with the ability to edit an electronic file in a creator application program while the electronic file is open in a separate viewing application program operable only for viewing the electronic file. In response to a user input to edit the electronic file, the ECD utility opens the electronic file and reads an application identification tag contained within the content of the electronic file. The application identification tag identifies a creator application program, which was used to create the electronic file and is operable for editing the content data of the electronic file. Once the ECD utility reads the application identification tag, the ECD launches the creator application program. The ECD utility then causes the creator application program to open the electronic file. Once the electronic file is open, the content data is displayed in a window controlled by the creator application program to allow the user to edit the content data.

TECHNICAL FIELD

This invention relates generally to software browsers and editors and,more particularly, relates to opening a hypertext markup language (HTML)file in an application program used to create the HTML file whileviewing the HTML file in a browser program.

BACKGROUND OF THE INVENTION

Most electronic files created by an application program have an externalidentifier tag assigned by the particular application program that wasused to create the electronic file. The external identifier tag, whichidentifies the format in which the electronic file is stored, is aseparate indicator that is attached to the electronic file. Generally,there are numerous specific file formats, such as word processing,database, spreadsheet, and graphics files. These specific file formatscontain specialized information that only the application, which wasused to create the electronic files, can fully interpret. Therefore, itis important that the application program used to create the electronicfile is able to recognize and open the electronic file.

One way to associate the electronic files with the application programthat created them is to use extensions. Extensions are a set ofpredefined characters added to the file name by the application program.This method of associating an electronic file with an applicationprogram is used by many computer operating systems, such as the “WINDOWS98” operating system manufactured by the Microsoft Corporation ofRedmond, Wash. For example, if a spreadsheet program such as MicrosoftCorporation's “EXCEL” program, is used to create an electronicspreadsheet file, the spreadsheet program appends the extension “.XLS”at the end of the filename each time the electronic file is saved to adisk. The .XLS extension indicates that the “EXCEL” program was used tocreate the electronic spreadsheet file, and that the file is saved in an“EXCEL” specific format. In this manner, the file is associated with thecorresponding electronic spreadsheet program.

The use of file extensions has several benefits. First, the fileextension allows the user to quickly identify the electronic files thatare associated with a particular application when the user views a listof files contained within a directory or a folder. Second, and moreimportantly, the extension associates the electronic file with theparticular application program which was used to create the file. Thelogical association, which is typically stored in a look-up table withinthe computer system or disk, allows simple, easy file management by theuser.

For example, the user can open an electronic file by selecting theelectronic file with a pointing device, such as a mouse. The computeroperating system retrieves the extension, locates the extension in thelook-up table stored in the computer system or disk, and retrieves andlaunches the associated application program using the electronic file asinput.

Another method of associating an electronic file with an applicationprogram is to write an identifier tag within the electronic file toindicate which application program is associated with the electronicfile. The identifier tag associates the format of the electronic filewith a particular application and is stored within the electronic fileitself. The logical association of the external identifier tag to theparticular application is stored in a look-up table in the computersystem or hard disk drive.

However, each prior method of file identification has the drawback thatonly one application program can be associated with an electronic file.Usually, this does not pose a problem to users because most electronicfile operations can be performed by one application program. However,there are instances when an electronic file needs to be associated withtwo or more different application programs.

For example, if an electronic file is created using the “EXCEL”spreadsheet program and is saved in a Hypertext Markup Language (HTML)format, the electronic file needs to be associated with two applicationprograms. First, the electronic file needs to be associated with abrowser application program, such as Microsoft's Internet Explorer, sothat the user can view the content of the HTML-formatted file. Second,the file needs to be associated with the “EXCEL” program to allow theuser to edit the content of the electronic file. Typically, theelectronic file is associated with the application program capable ofviewing the file format. In the example above, the applicationassociated with the HTML file would be the browser application. Thissingle association restriction can be frustrating and lead to problemsfor the user. If the user wishes to edit the file, the user must knowwhich application program was used to create the electronic file.However, if the user forgets which application program was used tocreate the electronic file, or if the user is not the same person whocreated the electronic file, there may be no easy way to determine whichapplication is associated with the electronic file. If the user wants toedit an electronic file but does not know which application program wasused to create it, the user usually must attempt to open the electronicfile in each computer application program on the computer operatingsystem until the appropriate application program is found. This processcan be time-consuming, inefficient, and frustrating. Thus, there is aneed for an improved method to identify, open and edit an electronicfile in an application program, which was used to create the file.

Prior attempts to solve this problem include designating a separateprogram as a default editor to edit the electronic file. That is, eachtime an edit command is executed by the user in regard to an electronicfile, the electronic file is opened in the designated default editor.For example, a text editor may be designated as the default editor forHTML-formatted files. Therefore, when a user selects an HTML-formattedfile to edit, the HTML-formatted file is opened in the text editorprogram, regardless of whether the file was created in a spreadsheetprogram or a word processing program. As a result, the user may not beable to edit files as they wish, if at all. Specifically, the user maynot be able to edit an HTML-formatted file created using “EXCEL” if thedefault editor is a text-editing program. This inability to edit theHTML file is a frustrating process that can lead to numerous errors.

Thus, there is a need in the art for a method of associating anelectronic file with both the program used to view the file and with theprogram used to create the electronic file, so that a user can easilyand quickly edit the electronic file.

SUMMARY OF THE INVENTION

The present invention meets the above-described needs in a softwareutility by allowing a user to edit an electronic file, having anapplication identification tag and content data, in a first applicationprogram while viewing the content data of the electronic file in asecond application program that is capable of only viewing the contentdata of the electronic file.

Generally described, an edit command delegation (ECD) utility provides auser with the ability to edit an electronic file in a creatorapplication program while the electronic file is open in a separateviewing application program operable only for viewing the electronicfile. In response to a user input to edit the electronic file, the ECDutility opens the electronic file and reads an applicationidentification tag contained within the content of the electronic file.The application identification tag identifies a creator applicationprogram, which was used to create the electronic file and is operablefor editing the content data of the electronic file. Once the ECDutility reads the application identification tag, the ECD launches thecreator application program. The ECD utility then causes the creatorapplication program to open the electronic file. Once the electronicfile is open, the content data is displayed in a window controlled bythe creator application program to allow the user to edit the contentdata.

More specifically, in response to a user command to edit the contentdata of the electronic file, the ECD utility determines whether theelectronic file contains a first application identification tag. Thefirst application identification tag contains the identification of thecreator application program stored in an existing standard format. Usinga standard format for the storing the first application identificationtag allows for the ECD utility to efficiently identify and retrieve thefirst application identification tag from the electronic file. If theECD utility determines that the electronic file contains a firstapplication identification tag, the ECD utility then determines whetherthe creator application is located on the computer system. Once the ECDutility determines that the creator application is located on thecomputer system, the ECD utility causes the electronic file to be openedin the creator application program and the content data displayed in awindow controlled by the creator application program.

However, if the electronic file does not contain the first applicationidentification tag, the ECD utility searches the electronic file for asecond application identification that may identify the creatorapplication. Normally, the second application tag is stored in anon-standard format, such as a text string which is difficult and timeconsuming to use to identify the creator application program. Therefore,if the ECD utility determines that the electronic file contains thesecond application identification tag, the ECD utility maps thenon-standard formatted second application identification tag to thestandard format, which the ECD utility can use to efficiently determineand locate the creator application program.

Once the ECD utility maps the second application identification tag tothe creator application program, the ECD utility determines whether thecreator application program is present on the computer system. If thecreator application program is on the computer system, the electronicfile in opened in the creator application program and the content datais displayed in the window. However, if the electronic file does notcontain either of the two application identification tags or the creatorapplication program is not located on the computer system, the ECDutility determines whether a default application program is registeredto edit the content data of the electronic file. If the determination ismade that a default application program is registered to edit thecontent data, the ECD utility launches the default application program.The default application program then displays the content data in awindow controlled by the default application program.

However, if the determination is made that a default application programis not associated with the electronic file, the ECD utility launches analternative default application program that is operable for editing thecontent data. The ECD then causes the alternative application program toopen the electronic file and display the content data within a computerwindow controlled by the alternative application program.

The ECD utility may also install itself into a computer system. The ECDutility copies itself onto a hard drive within the computer system. TheECD utility then determines whether an entry associated with a defaultapplication program is stored in a first location in a computer system.If the entry exists in the first location, the ECD utility copies theentry to a second location in the computer system. Once the ECD utilityhas finished copying the entry to the second location, the ECD deletesthe entry associated with the default application program from the firstlocation in the computer system and places an entry associated with theECD utility into the first location in the computer system.

The ECD utility may also open the electronic file using a uniformresource locator (URL) associated with the electronic file. The ECDfirst determines if a directory path tag is set in the file, whichspecifies the directory path to the original location of the electronicfile. If the directory path tag is present, the ECD utility determinesif the original file is currently open in the creator applicationprogram. If the electronic file is open in the creator applicationprogram, the ECD utility switches to the open file in the creatorapplication program. If the electronic file is not open in the creatorapplication program, the ECD utility passes the directory path to thecreator application program to open the file. If the directory path isnot set in the file, and the path of the file is not a URL, the ECDutility determines whether the creator application program is capable ofopening a URL site. The ECD utility checks a Boolean value in a URLlocator entry associated with the creator application program. If a URLlocator entry contains the Boolean value “TRUE” (typically denoted as a“1” or a “YES” text string), the ECD utility passes the URL associatedwith the electronic file to the creator application program to open thefile. Otherwise, the ECD utility passes the directory path associatedwith the electronic file to the creator application program.

That the invention improves over the drawbacks of prior systems andaccomplishes the advantages described above will become apparent fromthe following detailed description of the exemplary embodiments and theappended drawings and claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a personal computer that provides theoperating environment for an embodiment of the present invention.

FIG. 2 is an illustration of the file structure of an electronic filecontaining an application identification tag used by the presentinvention.

FIG. 3 is a logic flow diagram illustrating an exemplary process forapplying an edit command delegation (ECD) utility for launching adefault application program useful for editing an electronic filespecified by an application identification tag contained within theelectronic file.

FIG. 4 is a logic flow diagram illustrating an alternative process forapplying an edit command delegation (ECD) utility for launching adefault application program useful for editing an electronic filespecified by an application identification tag contained within theelectronic file.

FIG. 5 is a logic flow diagram illustrating another alternative processfor applying an edit command delegation (ECD) utility for launching adefault application program useful for editing an electronic filespecified by an application identification tag contained within theelectronic file.

FIG. 6 is a logic flow diagram illustrating an exemplary process forautomatically installing an ECD utility onto a computer system.

FIG. 7 is a logic flow diagram illustrating an exemplary process foropening an electronic file using the ECD utility.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The present invention may be embodied in a software utility, which isreferred to as the “Edit Command Delegation” (ECD) utility. In oneembodiment, this utility is incorporated into a component managerapplication program, such as the “OFFICE 2000” program, marketed byMicrosoft Corporation of Redmond, Washington. Briefly described, the ECDutility can open an electronic file in a creator application program byretrieving an application identification tag from the electronic filethat identifies the creator application program.

The term software “utility” typically denotes a stand-alone softwareprogram that solves narrowly focused problems or problems related tocomputer system management and operates in conjunction with otherapplication programs, such as a desktop publishing application program.However, a “utility” within the meaning of this specification may alsobe incorporated into a computer operating system or software function,routine, or dynamic link library (DLL) that is configured as anindependent object or module accessible by other software modulesthrough a predefined set of interfaces. The invention thereforeencompass any type of software module or system that performs themethods of the ECD utility described in this specification, and is notlimited to a particular object configuration, such as a narrowlytailored software program. In addition, although the present inventionis described in the context of a component manager application program,those skilled in the art will appreciate that the invention isapplicable to other programs that manage a suite of individualapplication programs and computer operating systems, and the like. Forpurposes of illustration in this application, the ECD utility isdescribed as a stand alone software program operating in conjunctionwith Microsoft's “OFFICE 2000” application program running under one ofMicrosoft's computer operating systems, such as “WINDOWS 95”, “WINDOWS98”, or “WINDOWS NT”.

An edit command delegation (ECD) utility allows a user to edit thecontent data of an electronic file in a creator application programwhile the electronic file is being viewed in a separate viewingapplication program operable for viewing the electronic file. Theviewing application program is not operable for editing the content dataof the electronic file. Rather, the term “viewing application program”refers to application program that are capable of viewing, but notediting the content data of the electronic file, such as Microsoft'sbrowser application program, “INTERNET EXPLORER”. However, those skilledin the art will appreciate that the term “viewing application program”may also refer other application programs, such as file managementprograms (e.g., “WINDOW'S EXPLORER), which are operable for viewing theelectronic file (i.e., in a graphical representation of a filestructure) but are not operable for editing the content data of theelectronic file.

In response to a user input to edit the electronic file, the ECD utilityopens the electronic file and reads an application identification tagcontained within the content of the electronic file. The applicationidentification tag identifies a creator application program, which wasused to create the electronic file and is operable for editing thecontent data of the electronic file. Once the ECD utility reads theapplication identification tag, the ECD launches the creator applicationprogram. The ECD utility then causes the creator application program toopen the electronic file. Once the electronic file is open, the contentdata is displayed in a window controlled by the creator applicationprogram to allow the user to edit the content data.

Generally, each application program running under the “OFFICE 2000”environment that can create an HTML-formatted file writes an applicationidentification tag into the contents of the file each time the file issaved in addition to adding the extension .htm or .html to the file.Although the electronic file is described in terms of an HTML fileformat those skilled in the art will appreciate that the ECD utility maybe applied to other file formats without altering the scope to theinvention.

Specifically, the application program places the applicationidentification tag as an entry within the head tag portion of the bodysection of the HTML-formatted file. As an example, most electronic filescontain a header portion for storing system information and a contentportion for storing content data. However, the content portion of HTMLfiles may also contain a head section and a body section. The headsection typically is delineated by a head tag and stores informationabout the file, such as links to other files. The remaining section ofthe content portion is denoted by a body tag, and contains content data.As a specific example, in the “OFFICE 2000” environment, eachapplication program places the application identification tag, known asthe Programmatic Identifier (ProgId) META tag, in the head section ofthe content portion of the HTML-formatted file. The ProgId META tagidentifies the application program that was used to create the file.More specifically, each application writes out the following ProgId METAtag

<HEAD>

.

.

.

<META name=ProgId contents=<ProgId_of_creator₁₃ application>>

.

.

.

</HEAD>

where <HEAD> denotes the beginning of the head section, </HEAD> denotesthe end of the head section, and <ProgId_of_creator_application> is theversion independent Programmatic Identifier for that application programwritten in a standard format. The use of a standard format allows aprogram module, such as the ECD utility, to easily read and retrieve theProgrammatic Identifier. To illustrate, if the “EXCEL” spreadsheetprogram is used to create the electronic data file, then the ProgID METAtag, which is written into the header portion of the HTML-formattedfile, would be

<META name=ProgId content=Excel.Sheet>

The HTML-formatted file still retains an extension that indicates theformat of the electronic file. Therefore, when the user selects theHTML-formatted file, the HTML-formatted file is opened in a browserapplication associated with the extension. When the user selects theedit operation, however, the ECD utility opens the HTML-formatted fileand retrieves the application identification tag. Although theapplication identification tag has been described as being placed in thehead section of body portion of an electronic file, those skilled in theart will appreciate that the application identification tag may beplaced anywhere within the electronic file (e.g., header portion, bodyportion, etc.) without altering the scope of the invention.

The ECD utility then searches a look-up table stored in the computersystem, such as the operating system's registry, for the entry thatcorresponds to the application identification tag. Although for purposesof this application, the look-up table is described in terms of the“WINDOWS” operating system registry, those skilled in the art willappreciate that other look-up table configurations, may be used with theECD utility without altering the scope of the invention.

Once the entry in the “WINDOWS” registry is found, the ECD utilityretrieves the path to the application program associated with theapplication identification tag. Typically, the application identified bythe application identification tag is the application that was used tocreate the electronic file. For purposes of this application, thisapplication identified by the application identification tag is referredto as the creator application program. Next, the ECD launches thecreator application program retrieved from the “WINDOWS” registry. Thecreator application program then opens the HTML-formatted file to allowuser to edit the file.

In another embodiment, instead of the ECD utility launching theapplication program, the ECD utility passes the path retrieved from the“WINDOWS” registry to a separate program module within the computeroperating system to launch the application program.

The ECD utility also can install itself onto the computer system inresponse to a setup routine in “OFFICE 2000” selected by the user. TheECD utility determines if an application program is stored, orregistered, within a “WINDOWS registry” entry under the Edit Verb for aparticular class of electronic files, such as HTML-formatted electronicfiles. First, the ECD utility retrieves the registry entryHKEY_CLASSES_ROOT\.htm to determine the browser application program,which is the value to be substituted with the <BrowserAppId> below.Then, the ECD utility examines the Edit Verb registry entry

HKEY_CLASSES-ROOT\<BrowserAppId>\shell\edit\command

which contains the path to an application program, which is launchedwhen the user chooses the edit command in connection with an HTML file.The computer application specified by the<BrowserAppId>\shell\edit\command entry is automatically launched eachtime an HTML formatted file is edited regardless of which applicationprogram running under “OFFICE 2000” was use to create the HTML file. Forexample, a text editing application program, such as Microsoft's“NOTEPAD”, may be registered under the Edit Verb for HTML-formattedfiles. Consequently, when a user chooses to edit an HTML file, the HTMLfile will be opened in the text editor application program.

Once the ECD utility determines which application program is registeredunder the Edit Verb, the installation procedure copies the entire EditVerb entry to a Default Editor registry entry and an Old Default Editorregistry entry within the “WINDOWS” registry. In this manner, theoriginal registry entry is retained in case the ECD utility isuninstalled. The entry in the Default Editor key contains a defaultcomputer application to be used to edit the HTML file. Once the EditVerb entry is copied to both keys, a setup procedure deletes the entryunder the Edit Verb.

Next, the setup procedure of the ECD utility registers the ECD utilityunder the Edit Verb as the default application to be launched wheneveran edit command is selected in connection with an HTML formatted file.Consequently, the ECD utility is accessed each time an edit command isexecuted in connection with an HTML file.

In still another embodiment, the ECD utility may launch a defaultapplication capable of editing the content data of the electronic fileif the electronic file does not contain the application identificationtag. The user may specify the default application or it may be theapplication program associated with the registry entry copied to theDefault Editor key during the installation step above. Typically, thedefault application program is capable of editing text (e.g., a textediting program, or a word processing program) and therefore capable ofo providing a limited set of editing capabilities. For example, if theelectronic file was created using the “EXCEL” spreadsheet program, thefile most likely will contain formatting and syntax within the contentdata that is specific to the “EXCEL” program. Therefore, the defaultprogram will be unable to edit those specific aspects of the electronicfile. However, the default program may still be used to edit thoseportions of the electronic file that are not saved in a format specificto the creator program. Referring to the above example, if the contentdata of the HTML-formatted file created using the “EXCEL” applicationprogram contained a pie-chart and text, the default application would beunable to edit the pie-chart due to the pie chart being stored in“EXCEL” specific format. Nonetheless, the default application wouldstill allow the user to edit those portions of the content data notstored as text format, but instead stored in HTML format. Thus, in thismanner, the default application program still provides the user withlimited editing capabilities in the event that the electronic file doesnot contain an application identification tag. For example, the ECDutility may launch Microsoft's “NOTEPAD” as the default applicationprogram. Although “NOTEPAD” has the capabilities to edit anHTML-formatted file created in “EXCEL”, “NOTEPAD” lacks the rich textediting environment of “EXCEL”. Furthermore, “NOTEPAD” lacks the abilityto display the content in a “What You See Is What You Get” or “WSYSIWYG”environment.

In still another embodiment, the electronic file may contain a secondapplication identification tag that also identifies the creatorapplication program. Some application programs place the secondapplication identifier tag, known as a generator META tag within theheader of the electronic file. The generator META tag is used by searchengines to locate files created by the creator application program.Although the generator META tag is contained in the electronic file, itis not used to launch the creator application program, because it isstored in a format, typically text, which makes it difficult for the ECDutility to identify the creator application program. For example, thegenerator META tag

<META name=Generator content=<application>>

where <application> is a text string identifying the creator applicationprogram. To further illustrate, if the “EXCEL” spreadsheet program isused to create the electronic data file, then the generator META tag,which is written into the header portion of the HTML-formatted file,would be

<META Name=Generator Content=Microsoft Excel 9>.

However, the ECD utility is configured to read the generator META tagformat in the event that the ProgID META tag is not present. The ECDutility then maps the content of the generator META tag, which istypically in text format, to the standard format used by the ProgID. TheECD utility then uses the mapped entry in the standard format to launchthe creator application program and open the electronic file. Finally,the creator application program displays the electronic file in a windowcontrolled by the creator application program to allow the user to editthe program.

The ECD utility may also install itself onto a computer system. The ECDutility first determines whether a first location in a computer systemcontains an entry associated with a default application program. Forexample, the first location of the computer system may be represented byan entry in the “WINDOWS” registry, known as a “key.” In this case, theECD utility examines a registry entry, specifically the Edit Verbregistry key for the class of HTML-compatible electronic files. The EditVerb registry key typically contains the path for the defaultapplication program used to edit HTML-formatted files. Therefore,whenever a user issues an edit command for an electronic file in an HTMLfile format, the application program identified by the entry under theEdit Verb key is launched.

If the first location in the computer system contains the defaultapplication program, the ECD utility copies the entire entry under theEdit Verb key to an entry under the Default Editor key and an OldDefault Editor key. By copying the entry under the Edit Verb key to theOld Default Editor key, the ECD utility preserves the original “WINDOWS”registry configuration. This allows the user to restore the originalregistry entries in the event the ECD utility is removed from thecomputer system, either inadvertently or by user interaction.

Next, the ECD utility removes the default application registered as thedefault editor for the class of HTML-formatted electronic files so thatthe ECD utility may be registered as the default application. Theensures that the ECD utility is launched each time an edit command isinitiated for an HTML-formatted file.

Next, the ECD utility registers itself in the Edit Verb registry key asthe default application program to be launched when an edit command isinitiated for an HTML-formatted file. Consequently, each time the userinitiates an edit command with respect to an HTML-formatted file, theECD utility is launched. Once launched, the ECD utility determines theappropriate application to launch to edit the HTML-formatted file.

The ECD utility may also open the electronic file using a uniformresource locator (URL) associated with the electronic file. The ECDfirst determines if a directory path tag is set in the file, whichspecifies the directory path to the original location of the electronicfile. Typically, the original location of the electronic file is on thehard disk within the user's computer system. The directory path tagindicates that the file being opened for editing is a preview filecreated for viewing, and not the original electronic file. If thedirectory path tag is present, the ECD utility determines if theoriginal file is currently open in the creator application program. Ifthe electronic file is already open in the creator application program,the ECD utility switches to the open file. However, if the electronicfile is not open in the creator application program, the ECD utilitycauses the creator application program to open the electronic file.

If the directory path tag is not set in the electronic file, and thepath to the electronic file is a URL, the ECD utility determines whetherthe creator application program can open an electronic file using theURL by checking the Boolean value in a URL locator entry associated withthe creator application program. If a URL locator entry contains theBoolean value “TRUE”, typically represented by either a “1” or “YES”character string, the ECD utility passes the URL associated with theelectronic file to the creator application program to open the file.Otherwise, the ECD utility passes the directory path associated with theelectronic file to the creator application program. However, if the pathto the electronic file is not a URL, the ECD utility passes thedirectory path associated with the electronic file to the creatorapplication program.

However, if the URL locator entry contains the Boolean value “TRUE”,indicating that the creator application cannot open an URL site, the ECDutility passes the directory path stored in the viewing applicationprogram's cache memory to the creator application program. The viewingapplication program's cache memory stores the location of the electronicfile being viewed by the viewing application program on a portion of therandom access memory (RAM). For example, in a browser applicationprogram, the cache memory, known as the browser cache, stores the pathindicating the location for a predetermined number of electronic filesthat have been viewed. This allows the user to quickly alternate betweenfiles that have recently been viewed in the browser application. If theuser selects the “BACK” command, indicating they wish to view theprevious electronic file, the browser application program merely looksup the path in the browser cache instead of having to retrieve the pathof the previously viewed file from the hard disk. This allows forquicker access times for opening the electronic files in the browserapplication program. The ECD utility takes advantage of the viewingapplication cache (e.g., browser cache) by using it to retrieve thedirectory path of the viewed file. Using the directory path stored inthe viewing application's cache memory reduces the time required toretrieve the location of the electronic file used by the creatorapplication program top open the electronic file for editing.

FIG. 1 and the following discussion are intended to provide a brief,general description of a suitable computing environment in which theinvention may be implemented. While the invention will be described inthe general context of an application program that runs on an operatingsystem in conjunction with a personal computer, those skilled in the artwill recognize that the invention also may be implemented in combinationwith other program modules. Generally, program modules include routines,programs, components, data structures, etc. that perform particulartasks or implement particular abstract data types. Moreover, thoseskilled in the art will appreciate that the invention may be practicedwith other computer system configurations, including hand-held devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers, and the like. Theinvention may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a conventional personal computer 20, including aprocessing unit 21, a system memory 22, and a system bus 23 that couplesthe system memory to the processing unit 21. The system memory 22includes read only memory (ROM) 24 and random access memory (RAM) 25. Abasic input/output system 26 (BIOS), containing the basic routines thathelp to transfer information between elements within the personalcomputer 20, such as during start-up, is stored in ROM 24. The personalcomputer 20 further includes a hard disk drive 27, a magnetic disk drive28, e.g., to read from or write to a removable disk 29, and an opticaldisk drive 30, e.g., for reading a CD-ROM disk 31 or to read from orwrite to other optical media. The hard disk drive 27, magnetic diskdrive 28, and optical disk drive 30 are connected to the system bus 23by a hard disk drive interface 32, a magnetic disk drive interface 33,and an optical drive interface 34, respectively. The drives and theirassociated computer-readable media provide nonvolatile storage for thepersonal computer 20. Although the description of computer-readablemedia above refers to a hard disk, a removable magnetic disk and aCD-ROM disk, it should be appreciated by those skilled in the art thatother types of media which are readable by a computer, such as magneticcassettes, flash memory cards, digital video disks, Bernoullicartridges, and the like, may also be used in the exemplary operatingenvironment.

A number of program modules may be stored in the drives and RAM 25,including an operating system 35, one or more application programs, 36,which may include the Edit Command Delegation utility program 100, otherprogram modules 37, and program data 38. A user may enter commands andinformation into the personal computer 20 through a keyboard 40 andpointing device, such as a mouse 42. Other input devices (not shown) mayinclude a microphone, joystick, game pad, satellite dish, scanner, orthe like. These and other input devices are often connected to theprocessing unit 21 through a serial port interface 46 that is coupled tothe system bus, but may be connected by other interfaces, such as a gameport or a universal serial bus (USB). A monitor 47 or other type ofdisplay device is also connected to the system bus 23 via an interface,such as a video adapter 48. In addition to the monitor, personalcomputers typically include other peripheral output devices (not shown),such as speakers or printers.

The personal computer 20 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 49. The remote computer 49 may be a server, a router, a peerdevice or other common network node, and typically includes many or allof the elements described relative to the personal computer 20, althoughonly a memory storage device 50 has been illustrated in FIG. 1. Thelogical connections depicted in FIG. 1 include a local area network(LAN) 51 and a wide area network (WAN) 52. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

When used in a LAN networking environment, the personal computer 20 isconnected to the LAN 51 through a network interface 53. When used in aWAN networking environment, the personal computer 20 typically includesa modem 54 or other means for establishing communications over the WAN52, such as the Internet. The modem 54, which may be internal orexternal, is connected to the system bus 23 via the serial portinterface 46. In a networked environment, program modules depictedrelative to the personal computer 20, or portions thereof, may be storedin the remote memory storage device. It will be appreciated that thenetwork connections shown are exemplary and other means of establishinga communications link between the computers may be used.

FIG. 2 is an illustration of a typical file structure in computersystems operating under the “WINDOWS 98” environment.. An electronicHTML file 200 contains a header portion 202 and a content portion 204.The header portion 202, typically contains information regarding themanagement of the file, such as the name of the file, the size of thefile, the time and date the file was created, and the address of wherethe file is located in the computer disk. The content portion 204 of theelectronic HTML file 200 contains a head section 206 and a body section208. The head section 206 may contain the application identification tag210, which identifies the creator application program used to createelectronic HTML file 200. For example, each application running underthe “OFFICE 2000” environment, such as “EXCEL”, writes an applicationidentification tag 210, known as a Programmatic Identifier (ProgID) METAtag, into the head section 206 of an electronic file each time the fileis saved. This application identification tag indicates that “EXCEL” wasused to create that particular electronic file. The body section 208contains the content data 212.

Normally, the creator application program places the applicationidentification tag 210 in the same location within each electronic file.This allows the ECD utility 100 to easily locate the applicationidentification tag 210 in the electronic HTML file 200. For example,each creator application may write the application identification tag210 in the head section 206. This allows the ECD utility 100 to quicklylocate the application identification tag 210 without having to searchthe entire header portion. Although the application identification tag210 is described as being placed in the head section 206 of theelectronic HTML file 200, those skilled in the art will appreciate thatapplication identification tag 210 may be placed at any location withinthe electronic HTML file 200 without altering the scope of theinvention.

FIG. 3 is a logic flow diagram illustrating a routine 300 for applyingthe operation of the Edit Command Delegation utility 100 (FIG. 1) to anelectronic file generated by an application program. Those skilled inthe art will appreciate that the logic flow diagram of FIG. 3 isexecuted by the processing unit 21 (FIG. 1) in response to instructionsthat have been incorporated into the Edit Command Delegation utility100. The ECD utility is applied to an electronic file, which iscurrently opened and being displayed by a first application program.Typically, the first application program is capable of viewing thecontents of the electronic file but may be unable to perform otheroperations, such as editing and formatting the contents of the file. Forexample, an Internet browser is typically able to view HTML files but isunable to allow the user to edit those files.

The routine 300 begins at step 302, in which an electronic file 200 isopened in a viewing application program capable of viewing, but notediting the content data 212. The content data 212 is displayed in awindow controlled by the viewing application program. Step 302 isfollowed by step 304, in which the ECD utility reads the applicationidentification tag 210 from the electronic file 200.

Step 304 is followed by step 306, in which the ECD utility uses theapplication identification tag 210 to launch a creator applicationprogram identified by the application identification tag 210. Thecreator application program allows the user to edit the content data 212of the electronic file 200. Typically, the creator application will bethe application program used to create the electronic file. However, thecreator application program is not required to be the creatorapplication program. The creator application program may be anyapplication program capable of editing the content of the electronicfile, as discussed below.

Finally, step 306 is followed by step 308, in which the electronic file200 is opened within the creator application program. Opening theelectronic file 200 in the creator application allows the user to editthe content data 212. Upon opening the electronic file, the creatorapplication program converts the format of the HTML file to a formatsupported by the creator application. This allows the user to edit thoseportions of the content data 212 that has a format specific to thecreator application program. Thus, for the above example, when theHTML-formatted file is opened in the “EXCEL” spreadsheet applicationprogram, the format of the content data 212 is converted from HTML“EXCEL” format, thereby allowing the user to edit the content data 212that is stored in both the non-specific and specific formats. Lastly,step 308 is followed by the “END” step.

FIG. 4 is a logic flow diagram illustrating a routine 400 illustratinganother embodiment of the invention. Routine 400 begins at step 402, inwhich the electronic file 200 is opened in a viewing applicationprogram. Step 402 is followed by step 404, in which the determination ismade whether the electronic file 200 contains the applicationidentification tag 210. The determination is made in response to a userinitiating an edit command while viewing the content data 212 in theviewing application program.

If a positive determination is made that the electronic file 200contains the application identification tag 210, the “YES” branch isproceeds to step 406, in which the ECD utility reads the applicationidentification tag 210 contained in the electronic file 200. Step 406 isfollowed by step 408, in which the ECD utility launches the creatorapplication program.

Step 408 is followed by step 410, in which the determination is madewhether the creator application is present on the computer system. Ifthe determination is made that the creator application program ispresent on the computer system, the “YES” branch is followed to step416, in which the electronic file 200 is opened in the creatorapplication program to allow the user to edit the content data 212. Step416 is followed by the “END” step.

However, if the determination is made that the creator applicationprogram is not present on the computer system, the “NO” branch isfollowed to step 412, in which the ECD launches a default applicationprogram. The default application program is typically selected by theECD utility during the installation process (described below in FIG. 6).Normally, the default application program is a text-based applicationprogram, such as a text-editing application program or a word processingapplication program, because the text-based application programs aregenerally more adept at editing HTLM files. For example, if theelectronic file 200 was created using the “EXCEL” spreadsheet programcontaining specific formatting and syntax, the default program may stillbe used to edit those elements of the electronic file that are not savedin a format specific to the creator program, specifically the non-textelements. Therefore, using text-based application programs as thedefault application provides the user some editing capabilities if theECD utility 100 cannot launch the creator application program.

Step 412 is followed by step 414, in which the default application opensthe electronic file 200 to allow the user to edit the content data 212.Step 414 is followed by the “END” step.

Returning to step 404, if the determination is made that the electronicfile 200 does not contain the application identification tag 210, the“NO” branch proceeds to step 412 which is described above.

FIG. 5 illustrates a routine 500 of another embodiment of the ECDutility 100. Routine 500 begins at step 502, in which the electronicfile 200 is opened in a viewing application program. Step 502 isfollowed by step 504, a determination is made whether the electronicfile 2.00 contains the application identification tag 210. Thedetermination is made in response to a user initiating an edit commandwhile viewing the content data 212 in the viewing application program.

If the determination is made that the that the electronic file 200contains the application identification tag 210, the “YES” branchproceeds to step 506, in which the ECD utility reads the applicationidentification tag 506 contain in the electronic file 200. Step 506 isfollowed by step 508, in which the determination is made whether thecreator application program is present on the computer system. If thecreator application program is present on the computer system, the “YES”branch is followed to step 510, in which the ECD utility launches thecreator application program identified by the application identificationtag 210. Step 510 is followed by step 512,where the electronic file 200is opened in the creator application program to allow the user to editthe content data 208. Step 512 is followed by the “END” step. Returningto step 508, if the determination is made that the creator applicationprogram is not present on the computer system, the “NO” branch isfollowed to Step 520. At step 520, the determination is made whether adefault application program is registered for editing the content data212. If a default application program is registered for editing thecontent data 208, the routine 500 proceeds along the “YES” branch tostep 522, in which the ECD utility 100 launches the default application.The routine 500 then proceeds to step 524, where the default applicationprogram opens the electronic file 200 to allow the user to edit thecontent data 212.

Returning again to step 520, if the ECD utility 100 determines that adefault editor is not available to edit the content data 212, the “NO”branch is followed to step 526, in which case the ECD utility 100launches an alternative default application program. The alternativedefault application program is typically an application program capableof editing text (e.g., a text editing program, or a word processingprogram) capable of opening the electronic file and providing, to someextent, a limited set of editing capabilities. This step is a finalfailsafe task to insure that the user may edit the content data 212,although with limited capabilities.

Step 526 is followed by step 528, in which the electronic file is openedin the alternative default application program. Lastly, step 524 isfollowed by the “END” step.

Referring back to step 504, if the determination is made that theelectronic file does not contain a first application identifier tag, the“NO” branch advances to step 514. At step 514, the determination is madewhether the electronic file contains a second application identificationtag, namely a generator META tag. Some applications may write agenerator META tag into the header portion 202 of the electronic file.The generator META tag typically is used by search engines to locatefiles created by the creator application program. Although the generatorMETA tag is contained in the electronic file, it is not used to launchthe creator application program for editing purposes because it isstored as a text string. The text string does not lend itself to easilyfor a program module to identify the creator application program becausethere is no standard for identifying the creator application program,unlike the standard used in the ProgID META tag.

If the electronic file 200 contains the second applicationidentification tag, the “YES” branch proceeds to step 516, in which theECD utility 100 reads the second application identification tag toidentify the creator application program. Typically, the creatorapplication program identified by the generator META tag will be thesame as the creator application program identified by the ProgID METAtag. The value contained in the second identification tag is typicallystored as a text string.

Step 516 is followed by step 518, in which the ECD utility 100 maps thesecond identification tag to the creator application program. Forexample, mapping the generation META tag to “EXCEL” results in thecontent being translated from a text string to the standard format usedto represent the content of the ProgID META tag. This allows the ECDutility 100 to quickly determine whether the creator application ispresent on the computer system and easily locate and launch the creatorapplication. Step 518 then proceeds to step 508, which is describedabove.

Returning to step 514, if the electronic file 200 does not contain asecond application identification tag, the routine 500 follows the “NO”branch to step 520, which is described in detail above.

FIG. 6 is a logic diagram illustrating a routine 600, which representsthe installation procedure for the ECD utility 100. The routine 600starts at step 602, in which the ECD utility 100 determines whether afirst location in a computer system contains an entry associated with adefault application program. For example, the first location of thecomputer system may be represented by an entry in the “WINDOWS”registry, known as a “key.” In this case, the ECD utility 100 examines aregistry entry, specifically the Edit Verb registry key for the class ofHTML-compatible electronic files. The Edit Verb registry key typicallycontains the path for the default application program used to editHTML-formatted files. Therefore, whenever a user issues an edit commandfor an electronic file 200 in an HTML file format, the applicationprogram identified by the entry under the Edit Verb key is launched.

If a determination is made that the first location in the computersystem contains the default application program, the “YES” branch isfollowed to step 604, in which the ECD utility copies the entire entrystored in the first location to a second location in the computersystem. Specifically, the ECD utility 100 copies the entire entry underthe Edit Verb key to an entry under the Default Editor key and an OldDefault Editor key. By copying the entry under the Edit Verb key to theOld Default Editor key, the ECD utility 100 preserves the original“WINDOWS” registry configuration. This allows the user to restore theoriginal registry entries in the event the ECD utility 100 is removedfrom the computer system.

Next, step 604 is followed by step 606, in which the ECD utility 100deletes the entry from the first location in the computer system. Thisremoves the default application registered as the default editor for theclass of HTML-formatted electronic files so that the ECD utility may beregistered as the default application to be launched when an editcommand is initiated for an HTML-formatted file.

Step 606 is followed by step 608, in which the ECD utility 100 places anentry into the first location that associates the ECD utility with theelectronic file 200. To illustrate using the above example, the ECDutility 100 writes an entry into the Edit Verb registry key identifyingthe ECD utility 100 as the default application program to be launchedwhen an edit command is initiated for an HTML-formatted file.Consequently, each time the user initiates an edit command with respectto an HTML-formatted file, the ECD utility 100 is launched. Oncelaunched, the ECD utility 100 determines the appropriate application tolaunch to edit the HTML-formatted file. Finally, step 608 is followed bythe “END” step.

FIG. 7 is a logic diagram illustrating a routine 700, which illustratesopening the electronic file. Routine 700 begins at step 702, in whichthe ECD utility 100 determines if a directory path tag is set to a firstvalue in the electronic file 200. The directory path tag indicates thatthe file being opened for editing is a preview file created for viewing,and not the original electronic file 200. If the determination is madethat the directory path tag contains the first value, the “YES” branchis followed to step 704, in which the ECD utility 100 determines if theelectronic file 200 is currently open in the creator applicationprogram.

At step 704, if determination is made that the electronic file iscurrently open, the “YES” branch is followed to the “END” step. However,if the electronic file is not currently open in the creator applicationprogram, the “NO” branch is followed to step 716, in which the ECDutility 100 passes the directory path to the creator application programto open the electronic file 200.

Returning to step 702, if the determination is made that the directorypath tag is set, the “NO” branch is followed to step 706, in which theECD utility 100 retrieves the directory path from the preview file.

Step 706 is followed by step 708, in which the determination is madewhether the directory path retrieved from the electronic preview file isa URL site. If the directory path tag is present in the electronic file200 and the path to the electronic file 200 is a URL, the “YES” branchis followed to step 710, in which the ECD utility 100 determines whetherthe creator application program is capable of opening a uniform resourcelocator (URL) site by examining a valued stored in an URL locator entryassociated with the creator application in the registry.

If the determination is made that the creator application program iscapable of opening a URL site, the “YES” branch is followed to step 712,where the ECD utility 100 examines the URL locator entry and determineswhether it contains a first value indicating the creator application iscapable of downloading electronic files over a distribution computernetwork, such as an company-wide intranet or the Internet. Typically,the value stored in the URL locator entry is a Boolean value, in whichthe Boolean “TRUE” state is represented by a 1 or “YES” value and theBoolean “FALSE” state is represented by either a 0 or “NO” value.Therefore, if the URL locator entry contains the value 1 or “YES”,indicating a “TRUE” state, the “YES” branch is followed to step 714, inwhich the ECD utility 100 retrieves the URL from the browser applicationprogram and passes the URL to the creator application. The creatorapplication, uses the URL to locate of the electronic file 200 over adistribution computer network to download the electronic file 200 from aremote site specified by the URL. Step 714 is followed by the “END”step.

Returning to step 710, if the URL locator entry contains the value 0 or“NO”, indicating a “FALSE” state, then the “NO” branch is followed tostep 714, in which the directory path retrieved from the browser cacheis passed to the creator application program. The creator applicationprogram uses the directory path to locate and open the electronic file200. However, if the path to the electronic file 200 is not a URL, theECD utility 100 passes the directory path from the viewing applicationcache associated with the electronic file 200 to the creator applicationprogram. Step 716 then proceeds to the “END” step.

The present invention thus provides a method for editing anHTML-formatted file in the creator application program that created theHTML-formatted file while the HTML-formatted file is being viewed usinga browser application program. The present invention further provides amethod to identify the creator application by reading an applicationidentification tag contained within the electronic file.

It should be understood that the foregoing pertains only to theembodiments of the present invention, and that numerous changes may bemade to the embodiments described herein without departing from thespirit and scope of the invention.

What is claimed is:
 1. A method for editing content data associated withan electronic file, while the electronic file is being viewed in aviewing application program operable for viewing the electronic file butnot operable for editing the content data, comprising the steps of:installing an edit command delegation utility operative for launchingthe creator application program, in a computer system, wherein the stepof installing the edit command delegation utility comprising the stepsof: determining whether a first location in a computer system containsan entry associated with a default application program, the defaultapplication program being associated with the electronic file; inresponse to determining that the first location in a computer systemcontains an entry associated with the default application program,copying the entry to a second computer system location; deleting theentry from the first location in the system and disassociating thedefault application program with the electronic file, and inserting anentry in the first location in the computer system associated with theedit command delegation utility; in response to determining that thefirst location in a computer system does not contain an entry, insertingan entry in the first location in the computer system associated withthe edit command delegation utility; receiving a user command to editthe content data; reading an identification tag within the electronicfile indicating a creator application program that is operable forediting the content data; launching the creator application program;opening the electronic file in the creator application program;displaying the content data in a window controlled by the creatorapplication program; and receiving user commands to edit the contentthrough commands associated with the creator application program.
 2. Amethod for editing content data associated with an electronic file,while the electronic file is being viewed in a viewing applicationprogram being operable for viewing the electronic file but not operablefor editing the content data, the electronic file comprising a firstfile format, the first file format being defined by a hypertext markuplanguage (HTML) and a uniform resource locator (URL), comprising thesteps of: receiving a user command to edit the content data; reading anidentification tag within the electronic file indicating a creatorapplication program that is operable for editing the content data;launching the creator application program; opening the electronic filein the creator application program, wherein opening the electronic filecomprises: changing the first file format to a second file format;reading a directory path within the electronic file indicating thelocation in a computer system where the electronic file is stored forthe URL; determining whether the creator application program isconfigured to open the electronic file using the URL by checking a URLlocator entry associated with the creator application program; if theURL locator entry is set to a first value, passing the URL associatedwith the electronic file to the creator application program; and if theURL locator entry is set to a second value, passing the directory pathto the creator application program; displaying the content data in awindow controlled by the creator application program; and receiving usercommands to edit the content through commands associated with thecreator application program.
 3. A computer-controlled apparatusconfigured to perform a method for editing content data associated withan electronic file, while the electronic file is being viewed in aviewing application program operable for viewing the electronic file butnot operable for editing the content data, the electronic filecomprising a first file format, the first file format being defined by ahypertext markup language (HTML) and a uniform resource locator (URL),comprising the steps of: receiving a user command to edit the contentdata; reading an identification tag wit the electronic file indicating acreator application program that is operable for editing the contentdata; launching the creator application program; opening the electronicfile in the creator application program, wherein opening the electronicfile comprises: changing the first file format to a second file format;reading a directory path within the electronic file indicating thelocation in a computer system where the electronic file is stored forthe URL; determining whether the creator application program isconfigured to open the electronic file using the URL by checking a URLlocator entry associated with the creator application program; if theURL locator entry is set to a first value, passing the URL associatedwith the electronic file to the creator application program; and if theURL locator entry is set to a second value, passing the directory pathto the creator application program; displaying the content data in awindow controlled by the creator application program; and receiving usercommands to edit the content through commands associated with thecreator application program.
 4. A method for editing content dataassociated with an electronic file, while the electronic file is beingviewed in a viewing application program operable for viewing theelectronic file but not operable for editing the content data,comprising the steps of: receiving a user command to edit the contentdata; searching for an identification tag within the electronic fileindicating a creator application program that is operable for editingthe content data; in response to finding the identification tag withinthe electronic file: searching the computer system for the creatorapplication program; in response to finding the creator applicationprogram on the computer system: launching the creator applicationprogram, opening the electronic file in the creator application program,displaying the content data in a window controlled by the creatorapplication program, and receiving user commands to edit the contentthrough a command associated with the creator application program; andin response to not finding the creator application program on thecomputer system: launching a default application program, displaying thecontent data in a window controlled by the default application program,and receiving user commands to edit the content through a commandassociated with the default application program; and in response to notfinding the identification tag within the electronic file: launching thedefault application program, displaying the content data in a windowcontrolled by the default application program, and receiving usercommands to edit the content through a command associated with thedefault application program.
 5. The method of claim 4, furthercomprising the step of: installing an edit command delegation utilityoperative for launching the creator application program, in a computersystem, wherein the step of installing the edit command delegationutility comprising the steps of: determining whether a first location ina computer system contains an entry associated with a defaultapplication program, the default application program being associatedwith the electronic file; in response to determining that the firstlocation in a computer system contains an entry associated with thedefault application program, copying the entry to a second location inthe computer system; deleting the entry from the first location in thecomputer system and disassociating the default application program withthe electronic file, and inserting an entry in the first location in thecomputer system associated with the edit command delegation utility; andin response to determining that the first location in a computer systemdoes not contain an entry, inserting an entry in the first location inthe computer system associated with the edit command delegation utility.6. A computer-controlled apparatus configured to perform the method ofclaim
 5. 7. The method of claim 4, wherein a file format of theelectronic file is defined by a hypertext markup language (HTML) and auniform resource locator (URL), and wherein the step of opening theelectronic file in the creator application program comprises:determining whether a directory path tag is set to a first value; if thedirectory path tag is set to a first value: determining that theelectronic file is not open in the creator application program; inresponse to determining that the electronic file is not open in thecreator application program; reading the URL associated with theelectronic file indicating the location where the electronic file isstored, determining whether the creator application program isconfigured to open the electronic file using the URL by checking a URLlocator entry associated with the creator application program, if theURL locator entry is set to the first value, passing the URL associatedwith the electronic file to the creator application program, and if theURL locator entry is set to a second value, passing the directory pathto the creator application program; and if the directory path tag is setto the second value, passing the directory path to the creatorapplication program.
 8. A computer-readable medium containingcomputer-executable instructions for performing the method of claim 4.9. A method for editing content data associated with an electronic file,while the electronic file is being viewed in a viewing applicationprogram operable for viewing the electronic file but not operable forediting the content data, comprising the steps of: receiving a usercommand to edit the content data; searching for a first applicationidentification tag within the electronic file indicating a creatorapplication program that is operable for editing the content data; inresponse to finding the first application identification tag within theelectronic file: launching the creator application program, opening theelectronic file in the creator application program, displaying thecontent data in a window controlled by the creator application program,and receiving user commands to edit the content through a commandassociated with the creator application program; and in response to notfinding the first application identification tag within the electronicfile: searching for a second application identification tag within theelectronic file, in response to finding the second applicationidentification tag within the electronic file: mapping the secondapplication identification tag to the creator application program;launching the creator application program, opening the electronic filein the creator application program, displaying the content data in awindow controlled by the creator application program, and receiving usercommands to edit the content through a command associated with thecreator application program; in response to not finding the secondidentification tag within the electronic file: searching for a defaultapplication program that is registered for editing the content data;launching the default application program, displaying the content datain a window controlled by the default application program, and receivinguser commands to edit the content through a command associated with thedefault application program; and in response to not finding the defaultapplication program: launching an alternative default applicationprogram, displaying the content data in a window controlled by thealternative default application program, and receiving user commands toedit the content through a command associated with the alternativedefault application program.
 10. The method of claim 9, wherein the stepof finding the first application identification tag within theelectronic file further comprises: determining that the creatorapplication program is not present in the computer system; in responseto determining that the creator application program is not present onthe computer system, proceeding to the step of searching for a defaultapplication program that is registered for editing the content data. 11.The method of claim 10, wherein the step of finding the secondapplication identification tag within the electronic file furthercomprises the steps of: determining that the creator application programis not present in the computer system; and in response to determiningthat the creator application program is not present in the computersystem, proceeding to the step of searching for a default applicationprogram that is registered for editing the content data.
 12. The methodof claim 9, further comprising the step of: installing an edit commanddelegation utility operative for launching the creator applicationprogram, in a computer system, wherein the step of installing the editcommand delegation utility comprising the steps of: determining whethera first location in a computer system contains an entry associated witha default application program, the default application program beingassociated with the electronic file; in response to determining that thefirst location in a computer system contains an entry associated withthe default application program, copying the entry to a second locationin the computer system; deleting the entry from the first location inthe computer system and disassociating the default application programwith the electronic file, and inserting an entry in the first locationin the computer system associated with the edit command delegationutility; and in response to determining that the first location in acomputer system does not contain an entry, inserting an entry in thefirst location in the computer system associated with the edit commanddelegation utility.
 13. The method of claim 9, wherein a file format ofthe electronic file is defined by a hypertext markup language (HTML) anda uniform resource locator (URL), and wherein the step of opening theelectronic file in the creator application program comprises:determining whether a directory path tag is set to a first value; if thedirectory path tag is set to a first value; determining that theelectronic file is not open in the creator application program; inresponse to determining that the electronic file is not open in thecreator application program; reading the URL associated with theelectronic file indicating the location where the electronic file isstored, determining whether the creator application program isconfigured to open the electronic file using the URL by checking a URLlocator entry associated with the creator application program, if theURL locator entry is set to the first value, passing the URL associatedwith the electronic file to the creator application program, and if theURL locator entry is set to a second value, passing the directory pathto the creator application program; and if the directory path tag is setto the second value, passing the directory path to the creatorapplication program.
 14. A computer-readable medium containingcomputer-executable instructions for performing the method of claim 13.15. A computer-controlled apparatus configured to perform the method ofclaim 13.